﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using CapaEntidades;

namespace CapaDatos
{
    public class daAlmacen
    {

        #region singleton
        private static readonly daAlmacen _instancia = new daAlmacen();
        public static daAlmacen Instancia
        {
            get { return daAlmacen._instancia; }
        }
        #endregion

        #region Métodos

        public List<enAlmacen> almacenLista()
        {
            SqlConnection cn = null;
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            List<enAlmacen> lstAlmacen = null;
            try
            {
                cn = Conexion.getConexion();
                cmd = new SqlCommand("select * from LO_almacen", cn);
                cmd.CommandType = CommandType.Text;
                cn.Open();
                dr = cmd.ExecuteReader();
                lstAlmacen = new List<enAlmacen>();
                while (dr.Read())
                {
                    enAlmacen almacen = new enAlmacen();
                    almacen.alm_id = Convert.ToInt32(dr[0].ToString());
                    almacen.alm_nombre = dr[1].ToString();
                    almacen.alm_direccion = dr[2].ToString();
                    almacen.alm_ciudad = dr[3].ToString();
                    almacen.alm_estado = Convert.ToInt32(dr[4].ToString());
                    lstAlmacen.Add(almacen);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                dr.Close();
                cn.Close();
            }
            return lstAlmacen;

        }



        public enAlerta spRecepcionarAlmacenXML(String xml)
        {
            SqlConnection cn = null;
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            enAlerta lstProducto = new enAlerta();
            try
            {

                cn = Conexion.getConexion();
                cmd = new SqlCommand("spRecepcionarAlmacenXML", cn);
                cmd.Parameters.AddWithValue("@prmXML", xml);
                cmd.CommandType = CommandType.StoredProcedure;
                cn.Open();
                dr = cmd.ExecuteReader();
                lstProducto.val = -1;
                if (dr.Read())
                {

                    lstProducto.val = Convert.ToInt16(dr[0].ToString());
                    lstProducto.msg = dr[1].ToString();

                }
            }
            catch (Exception)
            {
                lstProducto.val = -1;
                throw;
            }
            finally
            {
                dr.Close();
                cn.Close();
            }
            return lstProducto;

        }
        #endregion

    }
}
